<?php


namespace App\Constants\Model;


use function Symfony\Component\DependencyInjection\Loader\Configurator\service_locator;

class Notice
{

    /**
     * 通知状态 0:未读 1:已读
     */
    const STATUS_UNREAD = 0;
    const STATUS_READ = 1;

    /**
     * 显示类型 1:系统 2:悬赏主
     */
    const SHOW_TYPE_SYSTEM = 1;
    const SHOW_TYPE_EMPLOYER = 2;

    /**
     * 发送相同通知时间，如果2小时内有发送相同通知且未读，将不再重复发送
     */
    const BEFORE_TIME_HAS_NOT_READ = 2 * 3600;

    /**
     * 消息发送平台
     */
    const SEND_PLATFORM_USER = 'user';
    const SEND_PLATFORM_EMPLOYER = 'employer';
    const SEND_PLATFORM_COOPERATIVE = 'cooperative';
    const SEND_PLATFORM_ADMIN = 'admin';


    /**
     * 企业认证待审核触发数
     */
    const CERTIFICATION_COMPANY_NOT_AUDIT_MAX = 5;

    /**
     * 提现触发数
     */
    const WITHDRAW_AUDIT_MAX = 10;

    /**
     * 主任务待审触发数
     */
    const TASK_AUDIT_MAX = 5;


    /************** 101-199 用户 start **********************/

    /**
     * 发送端: 系统
     * 接受端：用户
     * 用户未提交任务最后20分钟消息通知
     */
    const USER_TASK_NOT_AUDIT = 101;


    /**
     * 发送端: 悬赏主
     * 接受端：用户
     * 审核成功
     */
    const USER_TASK_AUDIT_SUCCESS = 102;

    /**
     * 发送端: 悬赏主
     * 接受端：用户
     * 审核失败
     */
    const USER_TASK_AUDIT_FAIL = 103;


    /**
     * 发送端: 系统
     * 接受端：用户
     * 用户升级
     */
    const USER_LEVEL_UP = 104;

    /**
     * 发送端:母公司
     * 接受端：用户
     * 企业实名通过通知（母公司）
     */
    const USER_CERTIFICATION_COMPANY_AUDIT_ALLOW = 105;

    /**
     * 发送端:母公司
     * 接受端：用户
     * 企业实名未通过通知（母公司）
     */
    const USER_CERTIFICATION_COMPANY_AUDIT_NOT_ALLOW = 106;

    /**
     * 发送端:母公司或合作商
     * 接受端：用户
     * 用户提现成功通知（母公司）
     */
    const USER_WITHDRAW_SUCCESS = 107;

    /**
     * 发送端:母公司或合作商
     * 接受端：用户
     * 用户提现驳回通知（母公司）
     */
    const USER_WITHDRAW_REJECT = 108;


    /************** 101-199 用户 end **********************/


    /************** 201-299 悬赏主 start **********************/


    /**
     * 发送端: 系统
     * 接受端：悬赏主
     * 审核倒计时快到期限提醒
     */
    const EMPLOYER_TASK_AUDIT_WAIT = 201;

    /**
     * 发送端: 悬赏主
     * 接受端：悬赏主
     * 任务退款
     */
    const EMPLOYER_TASK_REFUND = 202;


    /**
     * 发送端: 用户
     * 接受端：悬赏主
     * 用户申请仲裁
     */
    const EMPLOYER_TASK_ARBITRATION = 203;

    /**
     * 发送端:母公司或合作商
     * 接受端：悬赏主
     * 发布的任务审核失败通知
     */
    const EMPLOYER_TASK_NOT_ALLOW = 204;

    /**
     * 发送端:母公司或合作商
     * 接受端：悬赏主
     * 发布的任务审核成功通知
     */
    const EMPLOYER_TASK_ALLOW = 205;

    /**
     * 发送端:母公司或合作商
     * 接受端：悬赏主
     * 任务被冻结通知
     */
    const EMPLOYER_TASK_DISABLE = 206;


    /************** 201-299 悬赏主 end **********************/


    /************** 301-399 合作商 start **********************/
    /**
     * 发送端:母公司
     * 接受端：合作商
     * 合作商资料审核失败
     */
    const COOPERATIVE_AUDIT_RETURN = 301;


    /**
     * 发送端: 用户
     * 接受端：合作商
     * 合作商仲裁提醒
     */
    const COOPERATIVE_TASK_ARBITRATION = 302;

    /**
     * 发送端: 系统
     * 接受端：合作商
     * 子任务审核催促
     */
    const COOPERATIVE_TASK_AUDIT_WAIT = 303;


    /**
     * 发送端: 用户
     * 接受端：合作商
     * 提现
     */
    const COOPERATIVE_WITHDRAW_AUDIT = 304;


    /**
     * 发送端: 悬赏主
     * 接受端：合作商
     * 悬赏主任务待审
     */
    const COOPERATIVE_TASK_AUDIT_PENDING = 305;

    /**
     * 发送端: 母公司
     * 接受端：合作商
     * 合作商被推送商机时通知
     */
    const COOPERATIVE_RECEIVED_TASK_PUSH = 306;

    /**
     * 仲裁结果通知（合作商->用户）
     */
    const USER_ARBITRATE_END = 307;

    /**
     * 仲裁结果（合作商->悬赏者）
     */
    const EMPLOYER_ARBITRATE_END = 308;

    /**
     * 绑定小程序通知（合作商->母公司后台）
     */
    const BINDING_APPLETS = 309;


    /************** 301-399 合作商 end **********************/

    /************** 401-499 母公司 start **********************/


    /**
     * 发送端: 用户
     * 接受端：母公司
     * 企业认证申请超过5
     */
    const ADMIN_CERTIFICATION_COMPANY_AUDIT = 401;


    /**
     * 发送端: 用户
     * 接受端：母公司
     * 提现
     */
    const ADMIN_WITHDRAW_AUDIT = 402;


    /**
     * 发送端: 悬赏主
     * 接受端：母公司
     * 悬赏主任务待审
     */
    const ADMIN_TASK_AUDIT_PENDING = 403;


    /************** 401-499 母公司 end **********************/


    const TEMPLATES = [
    ];


}